const Project = require('../models/projectModel');

/**
 * 项目控制器
 */
const projectController = {
    // 创建项目
    async createProject(req, res) {
        try {
            const result = await Project.create(req.body);
            res.json({ message: '项目创建成功', id: result.insertId });
        } catch (err) {
            console.error(err);
            res.status(500).json({ error: '创建项目失败' });
        }
    },

    // 获取所有项目
    async getAllProjects(req, res) {
        try {
            const projects = await Project.getAll();
            res.json(projects);
        } catch (err) {
            console.error(err);
            res.status(500).json({ error: '获取项目列表失败' });
        }
    },

    // 获取单个项目
    async getProjectById(req, res) {
        try {
            const { id } = req.params;
            const project = await Project.getById(id);
            if (!project) return res.status(404).json({ error: '项目不存在' });
            res.json(project);
        } catch (err) {
            console.error(err);
            res.status(500).json({ error: '获取项目失败' });
        }
    },

    // 更新项目
    async updateProject(req, res) {
        try {
            const { id } = req.params;
            await Project.update(id, req.body);
            res.json({ message: '项目更新成功' });
        } catch (err) {
            console.error(err);
            res.status(500).json({ error: '更新项目失败' });
        }
    },

    // 删除项目（软删除）
    async deleteProject(req, res) {
        try {
            const { id } = req.params;
            await Project.remove(id);
            res.json({ message: '项目已删除（软删除）' });
        } catch (err) {
            console.error(err);
            res.status(500).json({ error: '删除项目失败' });
        }
    },
};

module.exports = projectController;
